package com.young.monitor.service;

import com.young.common.util.Page;
import com.young.monitor.model.ApiTrace;
import java.util.List;

/**
* 链路追踪服务接口
* Created by imrookie on 2019-3-10.
*/
public interface IApiTraceService {

    /**
     * 查询
     * @param obj
     * @return
     */
    List<ApiTrace> getList(ApiTrace obj);

    /**
     * 根据链路ID查询监控日志
     * @param traceId 追踪id
     * @return
     */
    List<ApiTrace> getListByTraceId(String traceId);

    /**
     * 根据业务ID查询监控日志
     * @param businessId 业务id
     * @return
     */
    List<ApiTrace> getListByBusinessId(String businessId);

    /**
     * 分页查询
     * @param obj
     * @param page
     * @return
     */
    List<ApiTrace> getPage(ApiTrace obj, Page page);

    /**
     * 查询单条
     * @param id
     * @return
     */
    ApiTrace get(String id);

    /**
     * 统计数量
     * @param obj
     * @return Integer 满足xx条件的数据有多少条
     */
    int count(ApiTrace obj);

    /**
     * 修改
     * @param obj
     * @return
     */
    int update(ApiTrace obj);

    /**
     * 删除
     * @param id
     * @return
     */
    int delete(String id);

    /**
     * 批量删除
     * @param idArr
     * @return
     */
    int delete(String[] idArr);

    /**
     * 插入
     * @param obj
     * @return
     */
    int insert(ApiTrace obj);

    /**
     * 批量插入
     * @param list
     * @return
     */
    int batchInsert(List<ApiTrace> list);

}